package Nitrus;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class GestorProducto {
	public Producto leerid(int id) throws Exception{
		Producto producto = null;
		Agente agentebd = Agente.getAgente();
		String query = "SELECT * FROM Producto WHERE id = ?";
		try {
			Connection conn = agentebd.getConn();
			PreparedStatement st = conn.prepareStatement(query);
		    st.setInt(1, id);
			ResultSet resQuery = st.executeQuery();
			if (resQuery.next()) {
				String nombre = resQuery.getString("nombre");
				double precio = resQuery.getDouble("precio");
				int idproducto = resQuery.getInt("id");
				int unidades = resQuery.getInt("unidades");
				producto = new Producto(nombre, precio, idproducto, unidades);
			}
			resQuery.close();
			st.close();
		} catch (Exception e) {
		      System.err.println("Excepcion:"); 
		      System.err.println(e.getMessage()); 
		}
		return producto;
	}
	public void anadir(Producto p) throws Exception{
		Agente agentebd = Agente.getAgente();
		String query = "INSERT INTO Producto VALUES(?, ?, ?, ?)"; //Nombre(String), Precio(double), ID(int), Unidades(int)
		try {
			Connection conn = agentebd.getConn();
			PreparedStatement st = conn.prepareStatement(query);
		    st.setString(1, p.getNombre());
		    st.setDouble(2, p.getPrecio());
		    st.setInt(3, p.getId());
		    st.setInt(4, p.getUnidades());
		    st.executeUpdate();
			st.close();
		} catch (Exception e) {
		      System.err.println("Excepcion:"); 
		      System.err.println(e.getMessage()); 
		}
	}
	public void modificar(Producto p) throws Exception {
		Agente agentebd = Agente.getAgente();
		String query = "UPDATE Producto SET nombre=?, precio=?, unidades=? WHERE id=?"; //Nombre(String), Precio(double), ID(int), Unidades(int)
		try {
			Connection conn = agentebd.getConn();
			PreparedStatement st = conn.prepareStatement(query);
		    st.setString(1, p.getNombre());
		    st.setDouble(2, p.getPrecio());
		    st.setInt(3, p.getUnidades());
		    st.setInt(4, p.getId());
		    st.executeUpdate();
			st.close();
		} catch (Exception e) {
		      System.err.println("Excepcion:"); 
		      System.err.println(e.getMessage()); 
		}
	}
	public void eliminar(int id) throws Exception {
		Agente agentebd = Agente.getAgente();
		String query = "DELETE FROM Producto WHERE id=?"; //Nombre(String), Precio(double), ID(int), Unidades(int)
		try {
			Connection conn = agentebd.getConn();
			PreparedStatement st = conn.prepareStatement(query);
		    st.setInt(1, id);
		    st.executeUpdate();
			st.close();
		} catch (Exception e) {
		      System.err.println("Excepcion:"); 
		      System.err.println(e.getMessage()); 
		}
	}
}